<?php

/*******************************************************
 *  虚拟户提现测试
 *
 * 接口名称：
 * 		提现申请
 * 使用场景：
 * 		提现发起
 *******************************************************/


//参数设置
$cardno = '';//虚拟账号,非商户号(18位的数字，联系业务获取)
$key = '';//代付密钥,非交易密钥(32位的字母+数字，联系业务获取)
$url = 'http://settle.xxx.com/virtPay.do';//接口地址(联系业务获取)
$traceno = "TEST".date('ymdhis',time());//商家平台的流水号，必须在商家众益健康里面唯一

//构造请求数据
$request = array(
	//必填项
    'cardno' => $cardno,//虚拟账号
    'traceno' => $traceno,//自定义流水号
    "amount" => '100.00',//提现金额，以元为单位
	'accountno' => '6220001234567890',//银行卡卡号
	'accountName' => '张三',//银行卡姓名
	'mobile' => '13800000000',//银行卡预留手机号
	'certno' => '000000000000000000',//身份证号
	'bankno' => '102110005002',//银行卡卡号
	'bankName' => '中国工商银行股份有限公司天津市分行',//支行名称
	'bankType' => '中国工商银行',//银行类型
	'remark' => '提现测试',//备注信息
	
	//选填项
	/**
		'payType' => '2',//数据来源(固定值填2)
		'payMode' => '1',//资金来源:1-余额提现(默认),2-垫资提现
		'subType' => '1',//交易方式:1-单笔
		'notifyUrl' => 'http://127.0.0.1/notify.php',//异步通知地址
	**/
);

//拼接上送的数据
$req_data='';
foreach ($request as $x => $x_value){
    if ($x_value != null){
        $req_data = $req_data.$x."=".iconv('UTF-8','GBK//IGNORE',$x_value)."&"; //采用本方法进行GBK编码
    }
}

//数据签名
$src = 'cardno='.$request['cardno'].'&traceno='.$request['traceno'].'&amount='.$request['amount'].'&accountno='.$request['accountno'].'&mobile='.$request['mobile'].'&bankno='.$request['bankno'].'';
$md5=md5($src.'&key='.$key);
echo "签名结果:<br/>".$md5."<br/>";

//数据通讯
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $req_data.'signature'.'='.$md5);
$response = curl_exec($curl);
curl_close($curl);

//打印结果
echo "返回结果:<br/>".iconv('GBK//IGNORE', 'UTF-8', $response);//使用GBK编码进行转码